import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MessageService } from 'primeng/api';
import { ButtonModule } from 'primeng/button';
import { CardModule } from 'primeng/card';
import { CheckboxModule } from 'primeng/checkbox';
import { ConfirmDialogModule } from 'primeng/confirmdialog';
import { DialogModule } from 'primeng/dialog';
import { DividerModule } from 'primeng/divider';
import { DropdownModule } from 'primeng/dropdown';
import { InputNumberModule } from 'primeng/inputnumber';
import { InputSwitchModule } from "primeng/inputswitch";
import { InputTextModule } from 'primeng/inputtext';
import { SidebarModule } from 'primeng/sidebar';
import { SliderModule } from "primeng/slider";
import { SplitButtonModule } from 'primeng/splitbutton';
import { TableModule } from 'primeng/table';
import { TabViewModule } from 'primeng/tabview';
import { ToastModule } from 'primeng/toast';
import { ToolbarModule } from 'primeng/toolbar';
import { SignalRConfig } from '../models';
import { MonitorRoutingModule } from './monitor-routing.module';
import { FieldMapListComponent } from './scenario-monitor/field-map-list/field-map-list.component';
import { LaneInfoComponent } from './scenario-monitor/lane-info/lane-info.component';
import { MonitorBoardInfoComponent } from './scenario-monitor/monitor-board-info/monitor-board-info.component';
import { PiplineInfoComponent } from './scenario-monitor/pipline-info/pipline-info.component';
import { PlcInfoComponent } from './scenario-monitor/plc-info/plc-info.component';
import { RgvInfoComponent } from './scenario-monitor/rgv-info/rgv-info.component';
import { RoadInfoComponent } from './scenario-monitor/road-info/road-info.component';
import { ScenarioMonitorComponent } from './scenario-monitor/scenario-monitor.component';
import { SiteInfoComponent } from './scenario-monitor/site-info/site-info.component';
import { SrmInfoComponent } from './scenario-monitor/srm-info/srm-info.component';
import { StatusInfoComponent } from './scenario-monitor/status-info/status-info.component';

@NgModule({
  declarations: [
    ScenarioMonitorComponent,
    SrmInfoComponent,
    PiplineInfoComponent,
    SiteInfoComponent,
    StatusInfoComponent,
    MonitorBoardInfoComponent,
    FieldMapListComponent,
    PlcInfoComponent,
    LaneInfoComponent,
    RgvInfoComponent,
    RoadInfoComponent
  ],
  imports: [
    CommonModule,
    MonitorRoutingModule,

    FormsModule,
    ReactiveFormsModule,

    ButtonModule,
    TableModule,
    DividerModule,

    ToastModule,
    ToolbarModule,
    SplitButtonModule,
    InputTextModule,
    InputNumberModule,
    CheckboxModule,
    CardModule,
    TabViewModule,
    SidebarModule,
    SliderModule,
    InputTextModule,
    DropdownModule,
    InputSwitchModule,
    DialogModule,
    ConfirmDialogModule,
  ],
  providers: [
    { provide: SignalRConfig, useClass: SignalRConfig },
    MessageService,
  ]
})
export class MonitorModule { }
